Partial derivatives are fundamental mathematical operators which are well known and used for describing the concept of change of one or more physical parameters. Typically, a phenomenon under consideration is a function of a number of independent parameters, and thus the dynamic description of this function with respect to a particular parameter evolves into expressions requiring the evaluation of partial derivatives.
Numerous physical phenomena may be expressed mathematically with partial derivatives, such as: velocity, acceleration, impulse, insulation, rate of chemical reactions, interest rates, inflation, etc. Partial derivatives are also used extensively for purposes of theoretical modeling in fields such as aerospace, ballistics, mechanical and electrical engineering, econometrics and statistics.
Conventional techniques for the evaluation of partial derivatives generally involve either methods of evaluation by hand, or various approximation techniques. When evaluating partial derivatives by hand, a number of well-known mathematical rules are applied to the given function to produce a number of expressions, one differentiated with respect to each independent variable (or combination of variables). Those differentiated expressions are then evaluated. But as the functions become complex, and the number of independent variables increases, the length of the expressions and the number of the expressions (particularly when higher order derivatives are considered) turn what might seem to be a rather mechanical job into one which is not only time-consuming but highly subject to error.
Approximation techniques for the evaluation of partial derivatives may be realized through the use of a digital computer. By their very nature, these approximation techniques involve a systematic error, due to two facts, first, that the evaluation of the partial derivatives is not done at precisely the point specified by the values of the independent variables, rather it is done at points in the near vicinity and, second, that typical functions being evaluated produce approximation errors that are predominantly in the same direction. For example, the Taylor approximation technique for first order derivative involves evaluating the given function at two points separated by a predetermined interval in the vicinity of the point of interest. The values resulting from these evaluations are used to determine the slope of the function between these two points, and this slope is then taken as an approximation for the first order derivative of the function at this point specified by the values of the independent variables. Similar schemes exist for approximation of second order derivatives.
Applications which often use approximation techniques for the evaluation of partial derivatives, such as Kalman filtering techniques, typically involve a repetitive process whereby a series of calculations is performed hundreds, if not thousands of times. Each of these calculations uses several partial derivative values and each incorporates into the process a certain error associated with each approximated value. Typically, these approximation errors are predominantly all in the same direction (i.e. all overestimates or all underestimates) and thus tend to accumulate, resulting in a rather large numerical error in the final results for an application.
Additionally, prior art techniques employing the use of the digital computer have often required relatively extensive hardware in order to evaluate the functions in a desirably short time, or considerable effort on the part of the user to preprocess the function so that its derivative can be evaluated by the computer system.
Thus, the need is shown for a method for evaluating partial derivatives by computer which is fast, accurate and preferably uses a small amount of memory.
It is an object of the present invention to provide a method and means to quickly, efficiently and accurately evaluate partial derivatives of a given function.
In accomplishing that object, the invention provides a method for the organization and control of a computer memory system such that information is manipulated and transferred between cells in an evaluation matrix of that memory system according to predetermined rules which results in the accumulation within the matrix the values of the partial derivatives of a given function evaluated at specified values of its independent variables.
It is a subsidiary object to accomplish the foregoing in a computational device which is readily available and need not be particularly configured to the application. Accordingly, an object is to minimize the memory requirements through an efficient organization of the memory elements, and maximize the speed of the evaluation through efficient manipulations of memory elements, thus enabling a relatively small computational device to perform accurate partial derivative evaluations for complex real time purposes.
The above objects are realized in accordance with the present invention which provides a method and apparatus which results in the automatic evaluation of partial derivatives of a given function at specified values; the evaluations is completed very quickly, uses a relatively small amount of memory, and is extremely accurate. The invention applies known mathematical rules relating simple functions to their derivatives. The rules are coded into sets of instructions which simply and efficiently manipulate information derived from complex functions which information has previously been arranged in a specific manner in an evaluation matrix. Each operator within any given function is assigned a priority and the relative priorities, along with the derivative rules, control the loading, unloading and manipulation of information in particular cells of the evaluation matrix to ultimately arrive at evaluated partial derivatives of the specified function. Through the use of this matrix, the number of manipulations required to perform the evaluation is substantially minimized, thereby also substantially minimizing the number of numerical errors introduced into the final evaluations.